/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package unc.pds.auth;

import java.rmi.RemoteException;
import unc.pds.exc.PDSSecurityException;

/**
 *
 * @author ain
 */
public interface ISecurityApplyer {
    public void onCreate(Long entkey) throws RemoteException, PDSSecurityException;

    public void onNewFriend(Long userkey, Long friendkey) throws RemoteException, PDSSecurityException;
    public void onDelFriend(Long userkey, Long friendkey) throws RemoteException, PDSSecurityException;
    public void onBanFriend(Long userkey, Long bannedUserKey) throws RemoteException, PDSSecurityException;
    public void onUnBanFriend(Long userkey, Long bannedUserKey) throws RemoteException, PDSSecurityException;

    public void onNewModer(Long userkey, Long friendkey) throws RemoteException, PDSSecurityException ;
    public void onDelModer(Long userkey, Long friendkey) throws RemoteException, PDSSecurityException ;
    public void onBanMember(Long userkey, Long bannedUserKey) throws RemoteException, PDSSecurityException;
    public void onUnBanMember(Long userkey, Long bannedUserKey) throws RemoteException, PDSSecurityException ;


    public void onPermissionChange(Long entKey,String act, String level) throws RemoteException, PDSSecurityException;
    public void onPermissionChange(Long user, String entity, String act, String level) throws RemoteException, PDSSecurityException;

    public void onPermissionChange(Long entKey,String entity, String field, String act, String level) throws RemoteException, PDSSecurityException;
    //public void onPermissionChange(Long user, String entity, String field, String level) throws RemoteException;

    public Long getMarkerGroupId(String name) throws RemoteException;
}
